package com.xufx.thread.liaoxuefeng.thread2_status;

/**
 * Created by xufx on 2021/12/23 12:35
 */
public class Main {
    /*
    * java的线程状态有以下几种：
    *  1. New：           新创建的线程，尚未执行
    *  2. Runnable：      运行中的线程，正在执行run()方法的java代码
    *  3. Blocked：       运行中的线程，因为某些操作被阻塞而挂起
    *  4. Waiting：       运行中的线程，因为某些操作在等待中
    *  5. Timed Waiting： 运行中的线程，因为执行sleep()方法正在计时等待
    *  6. Terminated：    线程已经终止，因为run()方法已经执行完毕
    */

    // 线程等待另一个线程结束才开始执行，使用join
    public static void main(String[] args) throws InterruptedException {
        Thread t = new Thread(() -> {
            try {
                Thread.sleep(3000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("thread t start...");
        });
        System.out.println("main thread start...");
        t.start();
        System.out.println("main thread is processing...");
        t.join(2000);
        System.out.println("main thread end...");
    }
}
